import axios from 'axios';
import { Message } from 'element-ui';

// 基础配置项
let axiosOpts = { timeout: 0 };

// 添加开发环境前缀
process.env.baseURL && (axiosOpts.baseURL = process.env.baseURL);

// 创建实例
const request = axios.create(axiosOpts);

// 请求拦截器
request.interceptors.request.use(
    undefined,
    error => {
        return Promise.reject(error.message); // 请求网络错误 error 有 message 属性
    }
);

// 响应拦截器
request.interceptors.response.use(
    response => {
        let data = response.data;
        if (data.code === 0) { // 状态码正确
            return data; // 需要使用返回的 msg 做提示
        } else {
            Message.error(data.message || 'Error'); // 错误弹窗提示
            return Promise.reject(data.message || 'Error'); // 返回错误信息
        }
    },
    error => {
        Message.error(error.message || 'Error'); // 错误弹窗提示
        return Promise.reject(error.message); // 返回错误信息
    }
);

export { request };